The present application describes systems and techniques relating to user interfaces, for example, user interface icons that can change in appearance.
An icon in a user interface is typically a raster image or bitmap that represents a software object, such as a system object in an operating system or a tool in a software application (e.g., the icon can form part of a button corresponding to the tool). Traditional icons have included transparency, which allows the icons to include elements of a background color or image, such as can be determined by an operating system (OS) that composites received icon images with an OS specified background.
Additionally, traditional tools in software applications include tools that have state represented by the icons corresponding to the tools. Such representative state has been added to traditional icons explicitly at design time in the case of rollover icons. A traditional rollover icon has multiple associated icon images, one for each state to be represented. When the state of the tool changes, the corresponding icon image is selected to be rendered as the icon, providing the new icon representation of the changed state.
Representative state has also been added to traditional icons at run time in the case of icons that are grayed out when inactive, and icons with a changing color representative of a color state of an associated tool. Traditional changing color icons come in two general forms. In the first, the software simply draws a colored rectangle in an area of the icon to indicate a selected color. In the second type, a simple color substitution is performed in the single icon image corresponding to the icon seen on the screen. This traditional color substitution is a direct substitution of a specific source color value in an icon image with a specific replacement color value. The specific source and replacement color values are typically either full pixel value specifications, such as when a full RGB (Red, Green, Blue) source triplet is replaced with a full RGB replacement triplet throughout an icon image, or color-component pixel value specifications, such as when a specific hue-component source number is replaced with a specific hue-component replacement number throughout an icon image.